<?php

namespace app\api\controller;

use app\api\model\Member;
use app\api\model\MemberToken;

class Base
{
    public function test()
    {
        echo app()->getRootPath();
    }

    public function register()
    {
        //第一步：接收必要的参数，并完成参数的校验
        $mobile = input('get.mobile');
        $password = input('get.password');
        $nickname = input('get.nickname');
        if (empty($mobile)) output_error('手机号不能为空');
        if (empty($password)) output_error('密码不能为空');
        if (empty($nickname)) output_error('昵称不能为空');
        if (strlen($mobile) != 11) output_error('手机号码格式不正确');
        //第二步：在数据中查找 该手机号是否在存在， 如果已经存在了，就直接返回 该手机号已被注册
        if (Member::register($mobile, $password, $nickname)) output_data('注册成功');
        output_error('注册失败，请检查提交的数据');
    }

    public function login()
    {
        //第一步：接收必要的参数，并完成参数的校验
        $mobile = input('get.mobile');
        $password = input('get.password');
        $model = input('get.model');
        if (empty($mobile)) output_error('手机号不能为空');
        if (empty($password)) output_error('密码不能为空');
        if (empty($model)) output_error('设备型号不能为空');
        //第二步：使用账号与密码去数据库匹配
        $condition = array();
        $condition[] = ['member_mobile', '=', $mobile];
        $condition[] = ['member_password', '=', md5($password)];
        $member = Member::where($condition)->find();
        if (empty($member)) output_error('账号或密码错误');
        //第三步：匹配成功，生成TOKEN返回给客户端，匹配失败，提示账号或密码错误
        $token = md5($member['member_id'] . time());
        $data = array();
        $data['member_id'] = $member['member_id'];
        $data['token_content'] = $token;
        $data['device_model'] = $model;
        $data['end_time'] = time() + 65535;
        $data['add_time'] = time();
        MemberToken::insert($data);
        output_data($token);
    }

    //找回密码功能,通过校验手机号码与昵称是否匹配实现
    public function findPass()
    {
        //第一步：接收必要的参数，并完成参数的校验
        $mobile = input('get.mobile');
        $nickname = input('get.nickname');
        $password = input('get.password');
        if (empty($mobile)) output_error('手机号不能为空');
        if (empty($nickname)) output_error('昵称不能为空');
        if (empty($password)) output_error('密码不能为空');
        //第二步：校验手机号与昵称是否匹配
        //SELECT * FROM member WHERE member_mobile = '15207713074' and  member_nickname= '123456';
        $condition = array();
        $condition[] = ['member_mobile', '=', $mobile];
        $condition[] = ['member_nickname', '=', $nickname];
        $data = Member::where($condition)->find();//FIND函数只查一条，返回的数据对象
        if (empty($data)) output_error('手机号与昵称不匹配，无法修改密码');
        //第三步：更新用户的密码
        //UPDATE member SET member_password = '123456' WHERE member_id  = 1;
        Member::where('member_id', '=', $data['member_id'])->update(array('member_password' => md5($password)));
        output_data(1);
    }
}
